昨天我們建置好了所有環境,今天就會正式開始訓練啦!今天結束Keras後就會回到主題TensorFlow,再與Keras的機器學習做些比較,謝謝大家!
定義訓練方式請查閱[Day16]
開始進行訓練
要進行訓練需鍵入以下程式碼:
以下將逐一解釋程式碼:
使用model.fit
進行訓練,那這些過程會存至train_history
輸入訓練資料的參數X=X_Train4D_normalize
(features數字影像的特徵值)Y=Y_TrainOneHot
(label數字影像真實的值)
validation_split=0.2
一般來說,Keras在訓練會將資料分為兩部分,分別是80%訓練資料與20%驗證資料
所以以筆者所做的範例為例,全部60000筆會分成48000的訓練資料(80%)與12000(20%)的驗證資料
epochs=10
設定訓練週期,我們是輸入10次,會執行10次訓練週期batch_size=300
每一批次筆數,我們輸入的是300筆資料
verbose=2
顯示訓練過程
執行完成後,鍵入以下程式碼可查看:
畫出accuracy(準確率)需鍵入:
loss(誤差)需鍵入:
評估準確率
輸入以下程式碼:
scores = model.evaluate X_Test4D_normalize, Y_TestOneHot
scores[1]
我們逐一解釋程式碼:
scores = model.evaluate(使用model.evaluate進行評估準確率,評估後會儲存在scores)
X_Test4D_normalize(測試features)
Y_TestOneHot(測試label)
進行預測
鍵入以下指令可進行預測
prediction=model.predict_classes(X_Test4D_normalize)
再鍵入prediction[:10]
可查看前10筆資料
我們這幾天使用了Keras與CNN大致上辨識了手寫數字,後續是有更進階版的,可以辨識的範圍更廣闊,等到以後有機會再多接觸吧!明天會回到TensorFlow的世界中,繼續努力啦!
Reference: 林大貴(2019):TensorFlow+Keras 深度學習人工智慧實務應用。新北市:博碩文化